package sunyu.tools.common;

import org.nutz.lang.Files;
import org.springframework.stereotype.Component;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

@Component
public class FileTools {

    /**
     * 删除文件
     *
     * @param filePath
     *
     * @return
     */
    public boolean delete(String filePath) {
        return Files.deleteFile(new File(filePath));
    }

    /**
     * 创建新文件，如果父目录不存在，也一并创建
     *
     * @param filePath
     *
     * @return
     *
     * @throws IOException
     */
    public boolean create(String filePath) throws IOException {
        return Files.createNewFile(new File(filePath));
    }

    /**
     * 将内容追加到文件尾
     *
     * @param filePath 文件路径(E:/temp.txt)
     * @param content  要追加的内容
     *
     * @throws IOException
     */
    public void appendContent(String filePath, String content) throws IOException {
        appendContent(filePath, content, false);
    }

    /**
     * 在文件尾追加内容
     *
     * @param filePath 文件路径
     * @param content  内容
     * @param rn       追加后是否换行
     *
     * @throws IOException
     */
    public void appendContent(String filePath, String content, boolean rn) throws IOException {
        create(filePath);

        // 打开一个写文件器，构造函数中的第二个参数true表示以追加形式写文件
        FileWriter writer = new FileWriter(filePath, true);
        writer.write(content);
        if (rn) {
            writer.write("\r\n");
        }
        writer.close();
    }

}
